//
// Created by Administrator on 2022/7/8.
//
#include "Tree.cpp"
//先序遍历非递归算法
//采用栈
stack<TreeNode*> s;
void preorder(Tree root){
    //先将根节点压入栈中
    s.push(root);
    //若栈不为空，就取出栈顶元素并访问
    while(!s.empty()){
        TreeNode *p = s.top();
        s.pop();
        visit(p->data);
        //同时若栈顶元素的左右子树不为空，就先将右子树压入栈，再将左子树压入栈
        if(p->rightChild!=NULL){
            s.push(p->rightChild);
        }
        if(p->leftChild!=NULL){
            s.push(p->leftChild);
        }
    }
}
int main(){
    Tree tree= CreateTreeByFile("Day-618-1.txt");
    preorder(tree);
}